#pragma once
#include "effect.h"

namespace krryn{
namespace view{
	class canvas;
	class texture : public effect{
	public:
		enum texture_wrap{
			texture_repeat,
			texture_clamp
		};

		texture(canvas *a_Canvas, size_t a_TextureUnit = 0);

		virtual ~texture();

		void set_texture_wrap(texture_wrap a_WrapU, texture_wrap a_WrapV);

		virtual void enable() = 0;
		virtual void disable() = 0;

	protected:
		canvas *m_Canvas;
		size_t m_TextureUnit;
		texture_wrap m_WrapU, m_WrapV;
	};
}
}